﻿using System;

namespace System
{
    public static class String
    {
        /// <summary>
        /// 转换字符串（升级版），使用时，应将待转换的字符串标记为“d{序号}d”的形式
        /// </summary>
        /// <param name="fmt">一个不定长数组</param>
        /// <returns>返回转换后的字符串</returns>
        public static string FormatEx(this string str,params string[] fmt)
        {
            //如果字符串为空，直接返回
            if (str.IsNullOrEmpty()) return str;

            //否则，开始处理
            string ParseString = str;

            //处理\n
            ParseString = ParseString.Replace("\\n", "\n");

            //遍历fmt
            for (int i = 0; i < fmt.Length; i++)
            {
                //待更换的字符串
                string ChangeString = $"{{{i}}}";

                //转换后的字符串
                string AfterString = fmt[i];

                //开始转换
                ParseString = ParseString.Replace(ChangeString, AfterString);
            }

            //返回字符串
            return ParseString;
        }

        /// <summary>
        /// 判断字符串是否为空
        /// </summary>
        /// <returns>是空返回true，不是返回false</returns>
        public static bool IsNullOrEmpty(this string input)
        {
            return string.IsNullOrEmpty(input);
        }
    }
}
